package 注解Annotation.自定义注解;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

//注解可以被用到哪个/哪些元素上
@Target({ElementType.METHOD,ElementType.FIELD})
// 注解会被留存到哪阶段
@Retention(RetentionPolicy.RUNTIME)  //保留
// TODO 以上两个元素是每个注解都必须有的

public @interface PrimaryProperty {
 // >> TODO annotation支持的类型 : 基本类型 、 Class 、 String 、 枚举 以上类型数组
    // todo 可以指定缺省值
    String defaultValue() default "N/A";

    Class targetClass();

    int abc();

    String[] defaultValues();

    //  todo 注解类型的缺省值
    Override is() default @Override;
}
